Skip to content

branch-4.0: [refactor](paimon) Per-catalog Paimon metadata cache with two-level table+snapshot structure #60478#60741

Merged
yiguolei merged 2 commits into
apache:branch-4.0from
suxiaogang223:pick-60478-branch-4.0
Mar 9, 2026
Merged

branch-4.0: [refactor](paimon) Per-catalog Paimon metadata cache with two-level table+snapshot structure #60478#60741
yiguolei merged 2 commits into
apache:branch-4.0from
suxiaogang223:pick-60478-branch-4.0

Conversation

@suxiaogang223

Copy link
Copy Markdown
Member

@hello-stephen

Copy link
Copy Markdown
Contributor

Thank you for your contribution to Apache Doris.
Don't know what should be done next? See How to process your PR.

Please clearly describe your PR:

  1. What problem was fixed (it's best to include specific error reporting information). How it was fixed.
  2. Which behaviors were modified. What was the previous behavior, what is it now, why was it modified, and what possible impacts might there be.
  3. What features were added. Why was this function added?
  4. Which code was refactored and why was this part of the code refactored?
  5. Which functions were optimized and what is the difference before and after the optimization?

@suxiaogang223

Copy link
Copy Markdown
Member Author

run buildall

@hello-stephen

Copy link
Copy Markdown
Contributor

FE UT Coverage Report

Increment line coverage 19.30% (55/285) 🎉
Increment coverage report
Complete coverage report

…able+snapshot structure (apache#60478)

Refactor Paimon metadata cache from a single global instance to
per-catalog instances,
introduce a two-level Table+Snapshot cache structure, and unify TTL
resolution logic
across Iceberg/Paimon/Schema caches.

The previous design shared a single `PaimonMetadataCache` instance and a
single global
`snapshotCache` across all Paimon catalogs. This caused:
- Different catalogs could not independently configure cache TTL.
- Cache keys had to carry `catalogId` for isolation; invalidation
required scanning all
  keys and filtering.
- `PaimonExternalTable` eagerly fetched the `Table` object at
construction time, incurring
  remote calls even when the table was never subsequently accessed.

(cherry picked from commit 2c85148)
@morningman morningman force-pushed the pick-60478-branch-4.0 branch from a7b50f9 to f1cfcfb Compare March 2, 2026 14:34
@morningman

Copy link
Copy Markdown
Contributor

run buildall

@yiguolei

yiguolei commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

skip buildall

@github-actions github-actions Bot added the approved Indicates a PR has been approved by one committer. label Mar 3, 2026
@github-actions

github-actions Bot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

@github-actions

github-actions Bot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@yiguolei yiguolei merged commit 87965e9 into apache:branch-4.0 Mar 9, 2026
27 of 30 checks passed
@suxiaogang223 suxiaogang223 deleted the pick-60478-branch-4.0 branch March 27, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants